home *** CD-ROM | disk | FTP | other *** search
/ Programming in Microsoft Windows with C# / Programacion en Microsoft Windows con C#.iso / Original Code / Brushes and Pens / TriangleTile / TriangleTile.cs next >
Encoding:
Text File  |  2001-01-15  |  1.6 KB  |  54 lines

  1. //-------------------------------------------
  2. // TriangleTile.cs ⌐ 2001 by Charles Petzold
  3. //-------------------------------------------
  4. using System;
  5. using System.Drawing;
  6. using System.Drawing.Drawing2D;
  7. using System.Windows.Forms;
  8.  
  9. class TriangleTile: PrintableForm
  10. {
  11.      const int iSide = 50;         // Side of square for triangle
  12.      MenuItem  miChecked;
  13.  
  14.      public new static void Main()
  15.      {
  16.           Application.Run(new TriangleTile());
  17.      }
  18.      public TriangleTile()
  19.      {
  20.           Text = "Triangle Tile";
  21.  
  22.           Menu = new MainMenu();
  23.           Menu.MenuItems.Add("&Wrap-Mode");
  24.  
  25.           foreach (WrapMode wm in Enum.GetValues(typeof(WrapMode)))
  26.           {
  27.                MenuItem mi = new MenuItem();
  28.                mi.Text     = wm.ToString(); 
  29.                mi.Click   += new EventHandler(MenuWrapModeOnClick);
  30.                Menu.MenuItems[0].MenuItems.Add(mi);
  31.           }
  32.           miChecked = Menu.MenuItems[0].MenuItems[0];
  33.           miChecked.Checked = true;
  34.      }
  35.      void MenuWrapModeOnClick(object obj, EventArgs ea)
  36.      {
  37.           miChecked.Checked = false;
  38.           miChecked = (MenuItem) obj;
  39.           miChecked.Checked = true;
  40.           Invalidate();
  41.      }
  42.      protected override void DoPage(Graphics grfx, Color clr, int cx, int cy)
  43.      {
  44.           Point[] apt = { new Point(0,     0), 
  45.                           new Point(iSide, 0), 
  46.                           new Point(0,     iSide)};
  47.  
  48.           PathGradientBrush pgbrush = 
  49.                     new PathGradientBrush(apt, (WrapMode) miChecked.Index);
  50.  
  51.           grfx.FillRectangle(pgbrush, 0, 0, cx, cy);
  52.      }
  53. }
  54.